GRE-туннель

В данной инструкции для инженера-разработчика описан вариант настройки GRE-туннеля между роутером Bitcord RTR-2 и удалённым VPS-сервером

Cхема сети ( Источник изображения )

Особенности настройки VPS-сервера

  • На VPS сервере должны быть установлены и активированы модули ядра, отвечающие за работу GR
root@maxgszypym:~# lsmod | grep gre
ip_gre                 28672  0 
ip_tunnel              32768  1 ip_gre
gre                    16384  1 ip_gre
root@maxgszypym:~#
  • Настройку туннеля на стороне VPS быстрее всего сделать, добавив соответствующие записи в файл /etc/network/interfaces
root@maxgszypym:~# cat /etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback

auto gretsm
iface gretsm inet static
        address 192.168.10.1
        netmask 255.255.255.0
        pre-up ip tunnel add gretsm mode gre local 45.12.73.59 remote 89.113.0.29 ttl 255
        up ifconfig gretsm multicast
        up ip addr add 192.168.10.2/32 peer 192.168.10.2 dev gretsm
        post-down ip tunnel del gretsm

# Source interfaces
source /etc/network/interfaces.d/*
  • Не забывайте перезапустить сетевую службу: service networking restart. А также убедиться, что получившиеся требуемый сетевой интерфейс появился
root@maxgszypym:~# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 45.12.73.59  netmask 255.255.255.255  broadcast 45.12.73.59
        inet6 fe80::70:ba8c:ff:feba:5c1  prefixlen 64  scopeid 0x20<link>
        ether 00:70:ba:8c:ff:ba  txqueuelen 1000  (Ethernet)
        RX packets 50323796  bytes 4151851878 (4.1 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 18783631  bytes 2833390328 (2.8 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

gretsm: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1476
        inet 192.168.10.1  netmask 255.255.255.255  destination 192.168.10.2
        inet6 fe80::2dc:493b  prefixlen 64  scopeid 0x20<link>
        unspec 20-0c-49-3b-80-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)
        RX packets 8175  bytes 7241065 (7.2 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8248  bytes 698418 (698.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 42  bytes 6368 (6.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 42  bytes 6368 (6.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Особенности настройки Роутера Bitcord RTR-2

  • Перед тем, как создавать GRE-туннель, на роутере RTR-2 должен иметься белый статический IP. Если в роутер вставлена Сим-карта с белым IP, то на странице "Настройка Сим-карт" должно отображаться стабильное подключение
  • Убедитесь, что соответствующий сетевой интерфейс присутствует
root@BITCORD-RTR-2:~# 
root@BITCORD-RTR-2:~# ifconfig
3g-modem  Link encap:Point-to-Point Protocol  
          inet addr:89.113.0.29  P-t-P:10.64.64.64  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:86460 errors:128 dropped:0 overruns:0 frame:0
          TX packets:84816 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:18542335 (17.6 MiB)  TX bytes:20074120 (19.1 MiB)

br-lan    Link encap:Ethernet  HWaddr 30:EB:1F:3D:E9:30  
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::32eb:1fff:fe3d:e930/64 Scope:Link
          inet6 addr: fd57:1bcb:c5a4::1/60 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:252205 errors:0 dropped:0 overruns:0 frame:0
          TX packets:196969 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:20384556 (19.4 MiB)  TX bytes:94479016 (90.1 MiB)
  • Убедитесь, что данный белый IP пингутется со стороны VPS-сервера
root@maxgszypym:~# 
root@maxgszypym:~# ping 89.113.0.29
PING 89.113.0.29 (89.113.0.29) 56(84) bytes of data.
64 bytes from 89.113.0.29: icmp_seq=1 ttl=53 time=59.1 ms
64 bytes from 89.113.0.29: icmp_seq=2 ttl=53 time=136 ms
64 bytes from 89.113.0.29: icmp_seq=3 ttl=53 time=58.6 ms

--- 89.113.0.29 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 58.553/84.586/136.133/36.449 ms
root@maxgszypym:~#
  • Добавление GRE-туннеля быстрее всего сделать через отдельную страницу в веб-интерфейсе
  • Заполняя форму настроек GRE-туннеля, не забывайте указать внешний белый IP устройства RTR-2 (Remote address), а также задавать локальный IP-туннеля на роутере RTR-2, который должен относится к той же подсети, что и локальный IP-туннеля на VPS-сервере
  • Убедитесь, что GRE-туннель пингуется